package LeetCode热题HOT100;

import 力扣题库.TreeNode;

public class p226翻转二叉树 {
    public TreeNode invertTree(TreeNode root) {
        //核心: 翻转每个节点的左右孩子，就能实现整体翻转的效果
        //递归法，使用前序遍历

        if(root==null) {
            return null;
        }
        invertTree(root.left);
        invertTree(root.right);
        reverse(root);

        return root;
    }

    private void reverse(TreeNode root) {
        if (root.left==null && root.right==null) {
            return;
        }

        TreeNode tmp=root.right;
        root.right=root.left;
        root.left=tmp;
    }
}
